package com.netrust.cmsx.core.persist;

import java.io.Serializable;
import java.util.List;

import org.springframework.data.repository.NoRepositoryBean;

/**
 * DAO支持类实现
 */
@NoRepositoryBean
public interface TreeDao<T,ID extends Serializable> extends BaseDao<T,ID> {

	List<T> findChildByParent(T entity);
	
	/**
	 * 查询某个父级的所有子集,其中一个元素为entity本身
	 * @param entity 查询实体
	 * @param func sql函数名
	 * @return
	 */
	List<T> findAllChilds(T entity,String func);
	
	/**
	 * 查询某个子节点的所有父节点,其中一个元素为节点本身
	 * @param entity
	 * @param func
	 * @return
	 */
	List<T> findAllParents(T entity,String func);
}